Sounding and steering protocols for wireless communications

ABSTRACT

Systems, apparatuses, and techniques relating to wireless local area network devices are described. A described technique includes transmitting a sounding packet to wireless communication devices; receiving, in response to the sounding packet, feedback packets from the wireless communication devices, wherein the feedback packets are indicative of beamforming matrices, the beamforming matrices being derived from received versions of the sounding packet; determining steering matrices based on the beamforming matrices; generating spatially steered data packets for the wireless communication devices based respectively on the steering matrices and data streams intended respectively for the wireless communication devices; and transmitting, within a frame, the spatially steered data packets to the wireless communications devices, wherein the spatially steered data packets concurrently provide the data streams respectively within the frame to the wireless communication devices via different spatial wireless channels.

CROSS REFERENCE TO RELATED APPLICATIONS

This disclosure is a continuation of and claims the benefit of thepriority of U.S. patent application Ser. No. 13/610,654, filed Sep. 11,2012 and entitled “Sounding and Steering Protocols for WirelessCommunications” (now U.S. Pat. No. 8,526,892), which is a continuationof and claims the benefit of the priority of U.S. patent applicationSer. No. 12/750,636, filed Mar. 30, 2010 and entitled “Sounding andSteering Protocols for Wireless Communications” (now U.S. Pat. No.8,270,909), which claims the benefit of the priority of U.S. ProvisionalApplication Ser. No. 61/165,249, filed Mar. 31, 2009 and entitled “SDMASounding and Steering Protocol for WLAN.” The above identifiedapplications are incorporated herein by reference in their entirety.

BACKGROUND

Wireless Local Area Networks (WLANs) include multiple wirelesscommunication devices that communicate over one or more wirelesschannels. When operating in an infrastructure mode, a wirelesscommunication device called an access point (AP) provides connectivitywith a network such as the Internet to other wireless communicationdevices, e.g., client stations or access terminals (AT). Variousexamples of wireless communication devices include mobile phones, smartphones, wireless routers, wireless hubs. In some cases, wirelesscommunication electronics are integrated with data processing equipmentsuch as laptops, personal digital assistants, and computers.

Wireless communication systems such as WLANs can use one or morewireless communication technologies such as orthogonal frequencydivision multiplexing (OFDM). In an OFDM based wireless communicationsystem, a data stream is split into multiple data substreams. Such datasubstreams are sent over different OFDM subcarriers, which can bereferred to as tones or frequency tones. Some wireless communicationsystems use a single-in-single-out (SISO) communication approach, whereeach wireless communication device uses a single antenna. Other wirelesscommunication systems use a multiple-in-multiple-out (MIMO)communication approach, where a wireless communication device usesmultiple transmit antennas and multiple receive antennas. WLANs such asthose defined in the Institute of Electrical and Electronics Engineers(IEEE) wireless communications standards, e.g., IEEE 802.11a or IEEE802.11n, can use OFDM to transmit and receive signals. Moreover, WLANs,such as ones based on the IEEE 802.11n standard, can use OFDM and MIMO.

SUMMARY

The present disclosure includes systems, apparatuses, and techniques forwireless local area networks.

Systems, apparatuses, and techniques for wireless local area networkscan include communicating with multiple wireless communication devicesto determine characteristics of spatial wireless channels. The spatialwireless channels can be respectively associated with the wirelesscommunication devices. The systems, apparatuses, and techniques caninclude determining steering matrices based on one or more outputs ofthe communicating. The steering matrices can be respectively associatedwith the wireless communication devices. The systems, apparatuses, andtechniques can include transmitting signals that concurrently providedata to the wireless communication devices via different spatialwireless channels. The signals can be spatially steered to the wirelesscommunication devices based on the steering matrices.

Systems, apparatuses, and techniques for wireless local area networkscan include one or more of the following features. Communicating withthe wireless communication devices can include transmitting, in afrequency band, one or more sounding packets to the wirelesscommunication devices. Communicating with the wireless communicationdevices can include receiving, in response to the one or more soundingpackets, feedback packets from the wireless communication devices. Insome implementations, a feedback packet is derived from a wirelesschannel estimation that is based on a received sounding packet.

In some implementations, receiving the feedback packets can includereceiving a first channel state information from a first device of thewireless communication devices and receiving a second channel stateinformation from a second device of the wireless communication devices.Determining the steering matrices can include determining a firststeering matrix based at least on the second channel state information.Determining the steering matrices can include determining a secondsteering matrix based at least on the first channel state information.

In some implementations, receiving feedback packets can includereceiving beam forming information indicative of a first feedback matrixfrom a first device of the wireless communication devices. Receivingfeedback packets can include receiving beam forming informationindicative of a second feedback matrix from a second device of thewireless communication devices. Determining the steering matrices caninclude determining a first steering matrix based at least on the firstfeedback matrix. Determining the steering matrices can includedetermining a second steering matrix based at least on the secondfeedback matrix.

In some implementations, receiving feedback packets can includereceiving interference rejection information indicative of a firstinterference matrix from a first device of the wireless communicationdevices. Receiving feedback packets can receiving interference rejectioninformation indicative of a second interference matrix from a seconddevice of the wireless communication devices. In some implementations,the first interference matrix is based on a null space of a wirelesschannel matrix associated with the first device. In someimplementations, the second interference matrix is based on a null spaceof a wireless channel matrix associated with the second device.Determining the steering matrices can include determining a firststeering matrix based at least on the second interference matrix.Determining the steering matrices can include determining a secondsteering matrix based at least on the first interference matrix.

Communicating with the wireless communication devices can includetransmitting, in a frequency band, one or more sounding requests to thewireless communication devices. Communicating with the wirelesscommunication devices can include receiving, in response to the one ormore sounding requests, sounding packets from the wireless communicationdevices. Determining the steering matrices can include estimatingwireless channel matrices based on the received sounding packets.

Communicating with the wireless communication devices can includesending a first sounding packet to perform sounding on a first group ofantennas and sending a second sounding packet to perform sounding on asecond group of antennas. Transmitting the signals can include using thefirst group of antennas and the second group of antennas.Implementations can include transmitting signaling information thatcauses one or more legacy devices to ignore processing a space divisionmultiple access (SDMA) frame and to prevent the one or more legacydevices from transmitting during a transmission of the SDMA frame.

Details of one or more implementations are set forth in the accompanyingdrawings and the description below. Other features and advantages may beapparent from the description and drawings, and from the claims.

DRAWING DESCRIPTIONS

FIG. 1A shows an example of a wireless local area network with twowireless communication devices.

FIG. 1B shows an example of a wireless communication devicearchitecture.

FIG. 2 shows an example of a functional block diagram of a transmit pathof wireless communication device.

FIG. 3 shows an example of an architecture that combines multipletransmission signals for transmission on multiple antennas.

FIG. 4 shows an example of a communication process.

FIG. 5 shows an example of an explicit sounding communication process.

FIG. 6A shows an example of an explicit sounding timing diagram.

FIG. 6B shows another example of an explicit sounding timing diagram.

FIG. 7 shows an example of an implicit sounding communication process.

FIG. 8A shows an example of an implicit sounding timing diagram.

FIG. 8B shows another example of an implicit sounding timing diagram.

FIG. 9A shows an example of a staggered sounding packet.

FIG. 9B shows another example of a staggered sounding packet.

FIG. 9C shows an example of a null data packet based sounding packet.

FIG. 9D shows another example of a null data packet based soundingpacket.

FIG. 9E shows an example of transmitting consecutive staggered soundingpackets to sound multiple antennas.

FIG. 9F shows an example of transmitting consecutive null data packetbased sounding packets to sound multiple antennas.

FIG. 10A shows an example of a space division multiple access basedframe.

FIG. 10B shows another example of a space division multiple access basedframe.

FIG. 11 shows another example of a space division multiple access basedframe.

FIG. 12 shows another example of a space division multiple access basedframe.

FIG. 13 shows an example of a timing diagram that includes windows forcarrier sense based communications and a window for space division basedcommunications.

FIG. 14 shows an example of a timing diagram including a space divisionmultiple access based frame and uplink acknowledgments.

FIG. 15 shows an example of a communication process based on channelstate information.

FIG. 16 shows an example of a communication process based on beamforming feedback.

FIG. 17 shows an example of a communication process based oninterference feedback.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIG. 1A shows an example of a wireless local area network with twowireless communication devices. Wireless communication devices 105, 107such as an access point (AP), base station (BS), access terminal (AT),client station, or mobile station (MS) can include processor electronics110, 112 such as one or more processors that implement methods effectingthe techniques presented in this disclosure. Wireless communicationdevices 105, 107 include transceiver electronics 115, 117 to send and/orreceive wireless signals over one or more antennas 120 a, 120 b, 122 a,122 b. In some implementations, transceiver electronics 115, 117 includemultiple radio units. In some implementations, a radio unit includes abaseband unit (BBU) and a radio frequency unit (RFU) to transmit andreceive signals. Wireless communication devices 105, 107 include one ormore memories 125, 127 configured to store information such as dataand/or instructions. In some implementations, wireless communicationdevices 105, 107 include dedicated circuitry for transmitting anddedicated circuitry for receiving.

A first wireless communication device 105 can transmit data to two ormore devices via two or more orthogonal spatial subspaces, e.g.,orthogonal Space Division Multiple Access (SDMA) subspaces. For example,the first wireless communication device 105 can concurrently transmitdata to a second wireless communication device 107 using a spatialwireless channel and can transmit data to a third wireless communicationdevice (not shown) using a different spatial wireless channel. In someimplementations, the first wireless communication device 105 implementsa space division technique to transmit data to two or more wirelesscommunication devices using two or more spatial multiplexing matrices toprovide spatial separated wireless channels in a single frequency band.

Wireless communication devices 105, 107 in a WLAN can use one or moreprotocols for medium access control (MAC) and Physical (PHY) layers. Forexample, a wireless communication device can use a Carrier SenseMultiple Access (CSMA) with Collision Avoidance (CA) based protocol fora MAC layer and OFDM for the PHY layer. A MIMO-based wirelesscommunication device can transmit and receive multiple spatial streamsover multiple antennas in each of the tones of an OFDM signal.

Wireless communication devices 105, 107 are sometimes referred to astransmitters and receivers for convenience. For example, a “transmitter”as used herein refers to a wireless communication device that receivesand transmits signals. Likewise, a “receiver” as used herein refers to awireless communication device that receives and transmits signals.

Wireless communication devices such as a MIMO enabled AP can transmitsignals for multiple client wireless communication devices at the sametime in the same frequency band by applying one or more transmitter sidebeam forming matrices to spatially separate signals associated withdifferent client wireless communication devices. Based on differentinterference patterns at the different antennas of the wirelesscommunication devices, each client wireless communication device candiscern its own signal. A MIMO enabled AP can participate in sounding toobtain channel state information for each of the client wirelesscommunication devices. The AP can compute spatial multiplexing matricessuch as spatial steering matrices based on the different channel stateinformation to spatially separate signals to different client wirelesscommunication devices.

This disclosure provides details and examples of techniques and systemsfor space division multiple access based sounding, steering, andcommunications, in general. One or more of the described techniques andsystems include sounding protocols to sound multiple antennas of awireless communication device. One or more of the described techniquesand systems include steering protocols to steer communication signals towireless communication devices based on output from a sounding process.

A transmitter can use a transmission signal model to generate SDMAtransmission signals for two or more receivers. Generating SDMAtransmission signals can include using spatial multiplexing matrixesassociated with respective receivers. A transmitter can construct amultiplexing matrix W for client receivers based on interferenceavoidance and/or signal-to-interference and noise ratio (SINR)balancing. Interference avoidance attempts to minimize the amount ofnon-desired signal energy arriving at a receiver. Interference avoidancecan ensure that signals intended for a particular receiver arrive onlyat that particular receiver and cancel out at a different receiver. Atransmitter can perform SINR balancing. SINR balancing can includedetermining multiplexing matrices to actively control the SINRs observedat different receivers. For example, one SINR balancing approach caninclude maximizing the minimum SINR across serviced receivers.

A transmitter can simultaneously communicate with multiple receivers viadifferent spatial wireless channels. The transmitter can usemultiplexing matrices, such as steering matrices, to transmitinformation on different spatial wireless channels. The transmitter canmultiply a transmission vector for the i-th receiver by a respectivemultiplexing matrix. The multiplexing matrix for each receiver candiffer. A multiplexing matrix can be a function of the wireless channelbetween the transmitter and the receiver. The transmitter can combinesteered signal vectors corresponding to the different receivers toproduce transmission signals that simultaneously transmit differentinformation to respective receivers.

In some implementations, a transmitter uses an OFDM transmission signalmodel based on

$s = {\sum\limits_{i = 1}^{N}\;{W_{i}x_{i}}}$where s is a transmitted signal vector for one tone, N is a number ofsimultaneously serviced receivers, x_(i) is an information vector(T_(i)×1, T_(i)<P_(i)) intended for the i-th receiver, W_(i) is amultiplexing matrix (M×T_(i)) for the i-th receiver, M is a number oftransmit antennas of the transmitter, and P_(i) is the number of receiveantennas of the i-th receiver.

In some implementations, a wireless communication device can determinemultiple wireless channel matrices H_(k) ^(i) based on one or morereceived signals. Here, H_(k) ^(i) represents the channel conditions forthe k-th tone associated with the i-th receiver. A transmitter cantransmit on multiple tones to two or more receivers. For example, thefirst tone received by the first receiver can be expressed as H₁ ¹[W₁¹x₁+W₁ ²x₂+ . . . +W₁ ^(N)x_(S)], where W_(k) ^(i) is the multiplexingmatrix for the i-th receiver at the k-th tone.

A multiplexing matrix W can be selected to cause the first receiver toreceive H₁ ¹W₁ ¹x₁ and to have the remaining signals x₂, x₃, . . . ,x_(S) be in a null space for the first receiver. Therefore, when using asignal interference approach, the values of the multiplexing matrix Ware selected such that H₁ ¹W₁ ²≈0, . . . , H₁ ¹W₁ ^(N)≈0. In otherwords, the multiplexing matrix W can adjust phases and amplitudes forthese OFDM tones such that a null is created at the first receiver. Thatway, the first receiver can receive the intended signal x₁ withoutinterference from other signals x₂, x₃, . . . , x_(S) intended for theother receivers.

In general, a received signal can include a signal component intendedfor i-th receiver and one or more co-channel interference componentsfrom one or more signals intended for one or more other receivers. Forexample, a received signal at the i-th receiver is expressed by:

$y_{i} = {{H_{i}W_{i}x_{i}} + {H_{i}{\sum\limits_{j \neq i}\;{W_{j}x_{j}}}} + n_{i}}$where H_(i) represents a wireless channel matrix associated with awireless channel between a transmitter and the i-th receiver, and n_(i)represents noise at the i-th receiver. The summation is over values of jcorresponding to receivers other than the i-th receiver.

When servicing multiple receivers simultaneously, power available at atransmitter can be allocated across multiple receivers. This, in turn,affects the SINR, observed at each of the receivers. The transmitter canperform flexible power management across the receivers. For example, areceiver with low data rate requirements can be allocated less power bythe transmitter. In some implementations, transmit power is allocated toreceivers that have high probability of reliable reception (so as not towaste transmit power). Power can be adjusted in the correspondingmultiplexing matrix W and/or after using other amplitude adjustmentmethods.

A transmitter device can determine a multiplexing matrix W associatedwith a receiver based on channel conditions between the transmitter andthe receiver. The transmitter and the receiver can perform sounding todetermine wireless channel characteristics. Various examples of soundingtechniques include explicit sounding and implicit sounding.

In some implementations, a device can transmit sounding packets based onpre-determined sounding data and spatial mapping matrix Q_(sounding).For example, a device can multiply Q_(sounding) with a sounding datatransmit vector. In some implementations, in the case of multiplesoundings, Q_(sounding) is a column wise, composite matrix. A device candetermine a steering matrix V_(i) based on information of how a soundingpacket was received, e.g., comparing a signal indicative of a receivedsounding packet with a pre-determined signal. In some implementations,an AP computes a steering matrix for the i-th receiver based onW_(i)=Q_(sounding)V_(i).

In some implementations, an AP transmits a sounding packet to areceiver. A receiver can determine wireless channel information based onthe sounding packet. In some implementations, the receiver sendswireless channel information such as channel state information (CSI),information indicative of a steering matrix V_(i), or informationindicative of interference. For example, a receiver can measure CSIbased on the received sounding packet.

An AP can compute steering matrices based on wireless channelinformation. In some implementations, a device computes:

$H_{Total} = {\begin{bmatrix}{\overset{\sim}{H}}_{1} \\{\overset{\sim}{H}}_{2}\end{bmatrix} \approx {\begin{bmatrix}H_{1} \\H_{2}\end{bmatrix}Q_{sounding}}}$as the composed CSI feedback from two receivers. Here, {tilde over(H)}₁≈H₁Q_(sounding), {tilde over (H)}₂≈H₂Q_(sounding) are theestimations of the wireless channel matrices associated with tones of anOFDM system for the two clients respectively. H_(total) can be expandedto include wireless channel matrix estimates for additional clients.

A multiplexing matrix such as a steering matrix can include aninterference mitigation component and a beam forming component. LetV_(ī⊥) represent the interference mitigation of the i-th client's signalat the other clients. In some implementations, V_(ī⊥) are matrices thatmap to the null spaces of a matrix composed by the rows in H_(Total)corresponding to the channels, except the channel of the i-th client(e.g., except for {tilde over (H)}_(i)). In other words,V_(ī⊥)=null({tilde over (H)}_(ī)) and {tilde over (H)}_(ī)V_(ī⊥)≈0. LetV_(i) ^(/) represent the beam forming matrix specific for the i-thclient. In some implementations, V_(i) ^(/) is the per-client steeringmatrix for improving the performance of the equivalent channel, {tildeover (H)}_(i)V_(ī⊥). In some implementations, a beam forming gain matrixsuch as V_(i) ^(/) is computed via a singular value decomposition (SVD)technique. In some implementations, a steering matrix is given byV_(i)=V_(ī⊥)V_(i) ^(/).

In a two client example, an AP can compute steering matrices for theclients based on V₁=V _(1⊥)V₁ ^(/) and V₂=V _(2⊥)V₂ ^(/), respectively.The AP can compute V _(1⊥)=null({tilde over (H)}₂) for the first clientand V _(2⊥)=null({tilde over (H)}₁) for the second client. Observe, that{tilde over (H)}₂V _(1⊥)≈0, {tilde over (H)}₁V _(2⊥)≈0.

In a three client example, an AP can compute steering matrices for theclients based on V₁=V _(1⊥)V₁ ^(/), V₂=V _(2⊥)V₂ ^(/), and V₃=V _(3⊥)V₃^(/), respectively. The AP can compute V _(1⊥)=null([{tilde over(H)}₂,{tilde over (H)}₃]) for the first client. The AP can compute V_(2⊥)=null([{tilde over (H)}₁,{tilde over (H)}₃]) for the second client.The AP can compute V _(3⊥)=null([{tilde over (H)}₁,{tilde over (H)}₂])for the third client. Observe, that {tilde over (H)}₂V _(1⊥)≈0, {tildeover (H)}₁V _(2⊥)≈0, {tilde over (H)}₃V _(3⊥)≈0.

In some implementations, clients can determine steering matrix feedbackbased on wireless channel estimations performed at each client based onreceiving a sounding packet from an AP. Steering matrix feedback caninclude a matrix. In some implementations, steering matrix feedbackincludes a compressed representation of a matrix. Various examples ofsteering feedbacks include beam forming feedback and interferencerejection feedback. Based on receiving steering matrix feedback, an APcan compute an updated steering matrix W_(i) for each client. In someimplementations, some clients in a WLAN can transmit beam formingfeedback, while other clients in the WLAN can transmit interferencerejection feedback.

An AP can receive beam forming feedback from a client. Such feedback caninclude a beam forming feedback matrix V_(i) _(—) _(FB) from the i-thclient for beam forming gain based on the wireless channel from the APto the i-th client. A client can compute:V _(i) _(—) _(FB) =f _(BF)({tilde over (H)} _(i)),where f_(BF) is a beam forming function. A beam forming computation caninclude performing a SVD computation. The AP can compute a steeringmatrix for the i-th client based on:W _(i) =Q _(sounding) V _(i) _(—) _(FB).In some implementations, beam forming feedback includes asignal-to-noise-ratio (SNR) value of each spatial stream thatcorresponds to each column of a steering matrix feedback. In someimplementations, beam forming feedback includes information associatedwith a Modulation Coding Scheme (MCS).

An AP can receive interference rejection feedback from a client. Aclient can send a feedback matrix based on a null space of an estimatedwireless channel matrix, e.g., V_(i) _(—) _(FB)=null({tilde over(H)}_(i)). The AP can use the feedback matrix from the i-th client forinterference avoidance of the signal of the other clients to the i-thclient.

In a two client example, V₁ _(—) _(FB)=null({tilde over (H)}₁) and V₂_(—) _(FB)=null({tilde over (H)}₂). The AP can compute steering matricesfor the clients based on the V_(i) _(—) _(FB) matrices, e.g.,W₁=Q_(sounding)V₂ _(—) _(FB) and W₂=Q_(sounding)V_(1 FB). In some cases,V₁ _(—) _(FB) may map to a subspace of the space null({tilde over(H)}₁), e.g., less number of columns than null({tilde over (H)}₁). Insome implementations, the number of space time streams for the secondclient is less than or equal to the number of columns in V₁ _(—) _(FB).Likewise, the number of space time streams for the first client is lessthan or equal to the number of columns in V₂ _(—) _(FB).

A client can receive a physical layer packet with N_(sts client) spacetime streams, e.g., streams based on MCS. To feedback an interferencerejection steering matrix, the client can compute a feedback steeringmatrix where the number of columns is equal to or less than N_(sts) _(—)_(max) _(—) _(AP)−N_(sts) _(—) _(client), where N_(sts) _(—) _(max) _(—)_(AP) is the maximum possible number of space-time streams that can betransmitted from the AP. In some implementations, a client can feedbacka MCS suggestion together with the interference rejection steeringmatrix feedback. A MCS suggestion can indicate a N_(sts) _(—) _(client)value that is preferred by the client.

In some implementations, a client can feedback a SNR of each receivechain. In some implementations, a client can feedback a sub-stream SNRfor N_(sts) _(—) _(client) sub-streams. In some implementations, N_(sts)_(—) _(client)=N_(sts) _(—) _(max) _(—) _(AP)−Columns(V_(i) _(—) _(FB)),where Columns(V_(i) _(—) _(FB)) represents the number of columns ofV_(i) _(—) _(FB).

In some implementations, an AP can perform one or more MAC informationelement (IE) exchanges when establishing a SDMA TxOP so that each clientknows the maximum possible N_(sts) _(—) _(client) for the other clients.A client can determine the number of columns in the client's feedbackV_(i) _(—) _(FB) based on the exchanges.

In some implementations, an AP sends sounding request packets to clientsthat cause the clients to send sounding packets from which the AP canestimate wireless channel information. The AP can compute wirelesschannel matrices {tilde over (H)}_(i) ^(T) for the wireless channelsbetween the clients and the AP. In some implementations, a H_(Total)matrix can include two or more {tilde over (H)}_(i) ^(T) matrices. TheAP can compute the steering matrices V_(i) based on the H_(Total)matrix.

FIG. 1B shows an example of a wireless communication devicearchitecture. A wireless communication device 150 can produce signalsfor different clients that are spatially separated by respectivemultiplexing matrices W_(i), e.g., steering matrices. Each W_(i) isassociated with a subspace. A wireless communication device 150 includesa MAC module 155. The MAC module 155 can include one or more MAC controlunits (MCUs) (not shown). The wireless communication device 150 includestwo or more modules 160 a, 160 b that receive data streams from the MACmodule 155 which are associated with different clients. The two or moremodules 160 a, 160 b can perform encoding such as a forward errorcorrection (FEC) encoding technique and modulation on a data stream. Thetwo or more modules 160 a, 160 b respectively are coupled with two ormore spatial mapping modules 165 a, 165 b.

The spatial mapping modules 165 a, 165 b can access a memory 170 a, 170b to retrieve a spatial multiplexing matrix associated with a datastream's intended client. In some implementations, the spatial mappingmodules 165 a, 165 b access the same memory, but at different offsets toretrieve different matrices. An adder 175 can sum outputs from thespatial mapping modules 165 a, 165 b.

An Inverse Fast Fourier Transform (IFFT) module 180 can perform an IFFTon an output of the adder 175 to produce a time domain signal. A digitalfiltering and radio module 185 can filter the time domain signal andamplify the signal for transmission via an antenna module 190. Anantenna module 190 can include multiple transmit antennas and multiplereceive antennas. In some implementations, an antenna module 190 is adetachable unit that is external to a wireless communication device 150.

In some implementations, a wireless communication device 150 includesone or more integrated circuits (ICs). In some implementations, a MACmodule 155 includes one or more ICs. In some implementations, a wirelesscommunication device 150 includes an IC that implements thefunctionality of multiple units and/or modules such as a MAC module,MCU, BBU, or RFU. In some implementations, a wireless communicationdevice 150 includes a host processor that provides a data stream to aMAC module 155 for transmission. In some implementations, a wirelesscommunication device 150 includes a host processor that receives a datastream from the MAC module 155. In some implementations, a hostprocessor includes a MAC module 155.

FIG. 2 shows an example of a functional block diagram of a transmit pathof wireless communication device. In this example, a transmit path isconfigured for MIMO communications. A wireless communication device suchas an AP can include one or more transmit paths. An AP's transmit pathcan include an encoding module 205 configured to receive a data steam,such as an audio data stream, a video data stream, or combinationthereof. The encoding module 205 outputs encoded bit streams to aspatial parsing module 210, which performs spatial mapping to producemultiple outputs.

Outputs of the spatial parsing module 210 are input into constellationmapping modules 215, respectively. In some implementations, aconstellation mapping module 215 includes a serial-to-parallel converterthat converts an incoming serial stream to multiple parallel streams.The constellation mapping module 215 can perform quadrature amplitudemodulation (QAM) on multiple streams produced by a serial-to-parallelconversion. The constellation mapping module 215 can output OFDM tonesthat are input to a spatial multiplexing matrix module 220. The spatialmultiplexing matrix module 220 can multiply the OFDM tones by a spatialmultiplexing matrix to produce signal data for multiple transmitantennas.

Outputs of the spatial multiplexing matrix module 220 are input toInverse Fast Fourier Transform (IFFT) modules 225. Outputs of the IFFTmodules 225 are input to cyclic prefix (CP) modules 230. Outputs of theCP modules 230 are input to digital-to-analog converters (DACs) 235,which produce analog signals for transmission on multiple transmitantennas, respectively.

FIG. 3 shows an example of an architecture that combines multipletransmission signals for transmission on multiple antennas. Atransmitter can include two or more transmit paths 301, 302, 303 thatare each configured for MIMO communications. A first transmit path 301generates multiple transmit signals 310 a, 310 b, 310 n for transmissionon multiple transmit antennas 320 a, 320 b, 320 n, respectively. Asecond transmit path 302 generates multiple transmit signals 311 a, 311b, 311 n for transmission on multiple transmit antennas 320 a, 320 b,320 n, respectively. A third transmit path 303 generates multipletransmit signals 312 a, 312 b, 312 n, for transmission on multipletransmit antennas 320 a, 320 b, 320 n, respectively.

A transmitter can include multiple summing modules 315 a, 315 b, 315 nthat are associated with multiple transmit antennas 320 a, 320 b, 320 n,respectively. In some implementations, summing modules 315 a, 315 b, 315n sum corresponding outputs of DACs in each of the transmit paths 301,302, 303 to produce combined transmit signals for each of antennas 320a, 320 b, 320 n.

FIG. 4 shows an example of a communication process. At 405, acommunication process includes communicating with multiple wirelesscommunication devices to determine characteristics of spatial wirelesschannels. The spatial wireless channels are respectively associated withthe wireless communication devices. Communicating with multiple wirelesscommunication devices can include using a sounding technique such as anexplicit sounding technique or an implicit sounding technique. At 410,the communication process includes determining steering matrices for thewireless communication devices based on the characteristics. Thesteering matrices are respectively associated with the wirelesscommunication devices. In explicit sounding, an AP can use feedbackreceived from the wireless communication devices to determine thesteering matrices. In implicit sounding, an AP receives sounding packetsfrom which the AP can determine steering matrices. At 415, thecommunication process includes transmitting signals that concurrentlyprovide data to the wireless communication devices via different spatialwireless channels. The signals can be spatially steered to the wirelesscommunication devices based on the steering matrices.

FIG. 5 shows an example of an explicit sounding communication process. Awireless communication device can use an explicit sounding communicationprocess to sound antennas. At 505, the transmitter transmits one or moresounding packets to multiple wireless communication devices. A soundingpacket can include signals based on pre-defined reference signals. Asounding packet can include different segments for sounding at differentclients. In some implementations, a transmitter transmits separatesounding packets for each of the clients. In some implementations, atransmitter can multicast a sounding packet to multiple clients. In someimplementations, a transmitter can generate an aggregated data unit thatincludes a data unit for each client in the WLAN. For example, anaggregated data unit can include a first data unit with sounding datafor a first client and a second data unit with sounding data for asecond client.

At 510, the transmitter receives feedback packets from the wirelesscommunication devices. A feedback packet can include information that isderived from a wireless channel estimation that is based on a receivedsounding packet. In some implementations, a feedback packet includeschannel state information (CSI). In some implementations, a feedbackpacket includes beam forming feedback information such as a steeringmatrix. In some implementations, a feedback packet includes interferencefeedback information such as an interference feedback matrix. Data thatcomprise a matrix can be compressed for transmission.

At 515, the transmitter determines steering matrices based on thefeedback packets. Determining steering matrices can include estimatingwireless channel matrices based on feedback from the devices.Determining steering matrices can include using feedback matrices todetermine steering matrices. At 520, the transmitter generates steereddata packets based on the steering matrices and data streams. At 525,the transmitter transmits the steered data packets to the wirelesscommunication devices.

FIG. 6A shows an example of an explicit sounding timing diagram. An APtransmits a sounding packet 605 to two or more receivers. In someimplementations, an AP can use multicast to transmit a sounding packetto multiple receivers. In some implementations, a sounding packetincludes information to coordinate the timing of when receivers sendfeedback packets. For example, MAC layer data can indicate an orderingof the feedback packets,

Receivers can determine wireless channel information based on areception of the sounding packet 605. For example, a first receivertransmits a feedback packet 610 to the AP based on the first receiver'sreception of the sounding packet 605. In a different time slot, a secondreceiver transmits a feedback packet 615 to the AP based on the secondreceiver's reception of the sounding packet 605. The AP can create oneor more protected time periods (TxOPs) in which to send and receivesounding and feedback information.

The AP can determine steering matrices for the receives based on thefeedback packets. In some implementations, a feedback packet can includewireless channel information. AP transmits a SDMA frame 620 thatincludes steered data packets for respective receivers.

FIG. 6B shows another example of an explicit sounding timing diagram. Inthis example, an AP sends separate sounding packets. The AP transmits asounding packet 655 to a first receiver. In response, the first receivertransmits a feedback packet 660 to the AP. The AP transmits a soundingpacket 665 to a second receiver. In response, the second receivertransmits a feedback packet 670 to the AP. In some implementations, theAP creates separate TxOPs for each of the AP's sounding exchanges. TheAP can determine steering matrices for the receives based on thefeedback packets. The AP transmits a SDMA frame 675 that includessteered data packets for respective receivers.

FIG. 7 shows an example of an implicit sounding communication process. Awireless communication device can use an implicit sounding communicationprocess to sound antennas. In this example, a transmitter solicitssounding packets from two or more receivers. At 705, the transmittertransmits one or more sounding request packets to multiple wirelesscommunication devices. A sounding request packet can cause a receiver totransmit a sounding packet. A sounding request packet can includedifferent segments addressed to different receivers. In someimplementations, a transmitter can multicast a sounding request packetto multiple clients. In some implementations, a transmitter can generatean aggregated data unit that includes a data unit for each client in theWLAN. For example, an aggregated data unit can include a first data unitwith a sounding request for a first client and a second data unit with asounding request for a second client. In some implementations, atransmitter transmits separate sounding request packets for each of thereceivers.

At 710, the transmitter receives sounding packets from the wirelesscommunication devices. In some implementations, the received soundingpackets can be sent in the same TxOP as the sounding request packet. Insome implementations, a device can create a TxOP to transmit a soundingpacket. At 715, the transmitter estimates wireless channel matricesbased on the sounding packets. At 720, the transmitter determinessteering matrices based on the wireless channel matrices. At 725, thetransmitter generates steered data packets based on the steeringmatrices and data streams. At 730, the transmitter transmits the steereddata packets to the wireless communication devices. In someimplementations, the transmitter performs calibration for phase shiftsand/or amplitudes changes in one or more wireless channels.

FIG. 8A shows an example of an implicit sounding timing diagram. An APtransmits a sounding request packet 805 to two or more receivers. Asounding request packet 805 can include a Training Request (TRQ) fieldset to indicate that one or more sounding packets are requests from areceiver. In some implementations, an AP can use multicast to transmit asounding request packet to multiple receivers. In some implementations,a sounding request packet includes information to coordinate the timingof when receivers send sounding packets. For example, MAC layer data canindicate an ordering of the sounding packets.

A first receiver transmits a sounding packet 810 to the AP. In asubsequent time slot, a second receiver transmits a sounding packet 815to the AP. The AP receives the sounding packets. The AP can determinewireless channel information based on the received version of thesounding packets and pre-determined sound packet data. The AP candetermine steering matrices for the receives based on the wirelesschannel information. The AP transmits a SDMA frame 820 that includessteered data packets for respective receivers.

FIG. 8B shows another example of an implicit sounding timing diagram. Inthis example, an AP sends separate sounding request packets. The APtransmits a sounding request packet 855 to a first receiver. Inresponse, the first receiver transmits a sounding packet 860 to the AP.The AP transmits a sounding request 865 packet to a second receiver. Inresponse, the second receiver transmits a sounding packet 870 to the AP.In some implementations, the AP creates separate TxOPs for each of theAP's sounding exchanges with the receivers.

The AP can determine wireless channel information based on the receivedversion of the sounding packets and pre-determined sound packet data.The AP can determine steering matrices for the receives based on thewireless channel information. The AP transmits a SDMA frame 875 thatincludes steered data, packets for respective receivers.

A wireless communication device can send sounding packets to sound oneor more antennas. Sounding antennas can include determining wirelesschannel information. A MAC frame format for a sounding packet caninclude a field such as a HT-Control field or a VHT-Control field tosignal the type of wireless channel information, e.g., CSI feedback,non-compressed steering matrix feedback, or compressed steering matrixfeedback, that is requested.

A wireless communication device such as an AP or a client can performsounding via transmitting sounding packets. Various examples of soundingpackets include staggered sounding packets and null data packet (NDP)based sounding packets.

FIG. 9A shows an example of a staggered sounding packet. A wirelesscommunication device can generate a staggered sounding packet 905. Thesounding packet 905 can include a Legacy Short Training Field (L-STF),Legacy Long Training Field (L-LTF), and Legacy Signal Field (L-SIG). Thesounding packet 905 can include one or more Very High Throughout (VHT)fields such as VHT Signal Field (VHT-SIG), VHT Short Training Field(VHT-STF), VHT Long Training Field (HT-LTF). The sounding packet 905 caninclude Extended Long Training Fields (E-LTFs). For example, a soundingpacket 905 can include an E-LTF for each TX antenna to be sounded. Insome implementations, subfield combinations in VHT-SIG fields can signalthe number of E-LTFs in the sounding packet 905.

FIG. 9B shows another example of a staggered sounding packet. Astaggered sounding packet 910 can include one or more of L-STF, L-LTF,and L-SIG. The sounding packet 910 can include one or more HighThroughout (HT) fields such as HT Signal Field (HT-SIG) to signal that aVHT-SIG field is included in the sound packet 905. In this example, theVHT-SIG field is transmitted with a 90-degrees phase shift for Binaryphase-shift keying (BPSK) modulation in each OFDM tone. In someimplementations, an AP can rotate the VHT-SIG BPSK modulationconstellation points in each subcarrier to the imaginary axis. Thesounding packet 910 includes an E-LTF for each TX antenna to be sounded.The VHT-SIG field can include a sub-field that indicatives the number ofE-LTFs in the sounding packet 910.

FIG. 9C shows an example of a null data packet based sounding packet. Awireless communication device can generate a NDP based sounding packet915. The sounding packet 915 can include one or more of L-STF, L-LTF,and L-SIG. The sounding packet 915 can include one or more VHT fieldssuch as VHT-SIG1 and VHT-SIG2, VHT-STF, and multiple VHT-LTFs. Signalingfields in the sounding packet 915 such as VHT-SIG1 and VHT-SIG2 can beused to indicate the number of included VHT-LTFs. The sounding packet915 includes a VHT-LTF for each TX antenna to be sounded. The VHT-LTFscan be used to determine a wireless channel matrix.

FIG. 9D shows another example of a null data packet based soundingpacket. A null data packet based sounding packet 920 can include one ormore of L-STF, L-LTF, and L-SIG. The sounding packet 920 can includesignaling fields such as HT-SIG1 and HT-SIG2 fields to signal that aVHT-SIG field is included in the sound packet 920. In this example, theVHT-SIG field is transmitted with a 90-degrees phase shift for BPSKmodulation in each OFDM tone. In some implementations, an AP can rotatethe VHT-SIG BPSK modulation constellation points in each subcarrier tothe imaginary axis. The sounding packet 920 includes an E-LTF for eachTX antenna to be sounded. The VHT-SIG field can include a sub-field thatindicates the number of E-LTFs in the sounding packet 920.

The number of TX antennas to be sounded can be greater than four at anAP. In some implementations, a sounding technique based on a wirelessstandard such as IEEE 802.11n can be extended to accommodate wirelessdevices with more than 4 antennas. For example, a sounding technique cansound 8 TX antennas of an AP. In some implementations, an AP can use aburst of consecutive sounding packets to sound multiple TX antennas. Forexample, if there are eight TX antennas at an AP, the AP can send twoconsecutive sounding packets, where each packet sounds four TX antennasat a time.

FIG. 9E shows an example of transmitting consecutive staggered soundingpackets to sound multiple antennas. In this example, an AP includeseight TX antennas. A first staggered sounding packet 930 can sound a setof four TX antennas at the AP. A second staggered sounding packet 935can sound the remaining set of four TX antennas at the AP. A ShortInter-Frame Space (SIFS) separates the first staggered sounding packet930 from the second staggered sounding packet 935 in time. In someimplementations, a MAC layer information associated with the firststaggered sounding packet 930 can indicate that a sound sounding packetwill follow.

FIG. 9F shows an example of transmitting consecutive null data packetbased sounding packets to sound multiple antennas. In this example, anAP includes eight TX antennas. An AP can send a NDP Announcement packet940 to indicate that two or more NDP based sounding packets will betransmitted. A first NDP packet 945 can sound a set of four TX antennasat the AP. A second NDP packet 950 can sound the remaining set of fourTX antennas at the AP. A SIFS separates the packets 940, 945, 950 intime.

A wireless communication device can support both single client andmulti-client communications. For example, a wireless communicationdevice based on a wireless standard such as IEEE 802.11n can supportlegacy mode communications with a single wireless communication device.For example, a transmitter can transmit signaling information thatcauses legacy devices to ignore processing a multi-client SDMA frame andto prevent a legacy device from transmitting during a transmission of amulti-client SDMA frame. A multi-client SDMA frame can include data fordifferent clients in respective spatial wireless channels.

A wireless communication device can generate and transmit signalinginformation that indicates that a frame is a multi-client SDMA frame. Awireless communication device can transmit, in a SDMA frame, two or morePHY frames over two or more wireless channels to two or more clients. Insome implementations, the PHY frame durations are not required to beidentical. In some implementations, a client sets a Clear ChannelAssessment (CCA) duration based on the longer PHY frame duration in aSDMA frame.

FIG. 10A shows an example of a space division multiple access basedframe. A wireless communication device can generate a SDMA frame 1001based on an IEEE 802.11n Mixed-Mode. A SDMA frame 1001 can include firstand second segments 1005, 1010. The first segment 1005 isomni-directional, e.g., it is not steered. The second segment 1010includes a first PHY frame 1015 steered to a first client associatedwith a first subspace and a second PHY frame 1020 steered to a secondclient associated with a second subspace. The first segment 1005includes L-STF, L-LTF, and L-SIG. The PHY frames 1015, 1020 includeVHT-SIG, VHT-STF, and one or more VHT-LTFs and VHT-Data. The number ofincluded VHT-LTFs can vary per client. The length of VHT-Data can varyper client.

In some implementations, a wireless communication device can set a bitin a L-SIG in the first segment 1005 to indicate a presence of a SDMAframe to a receiver. In some implementations, a wireless communicationdevice can set a bit in one or more VHT-SIGs in the second segment 1010to indicate a presence of a SDMA frame.

In some implementations, a wireless communication device can set areserved bit associated with a wireless communication standard such asIEEE 802.11n in an L-SIG field of the PHY frames 1015, 1020 to 1 toindicate a presence of a SDMA frame to a receiver. In someimplementations, the wireless communication device can include lengthand rate data in the L-SIG field of the first segment 1005. The lengthand rate data can be based on the second segment 1010 of the SDMA frame1001. In some implementations, a receiver of the SDMA frame 1001 can seta CCA duration based on a computation using length and rate subfields inan L-SIG.

FIG. 10B shows another example of a space division multiple access basedframe. A SDMA frame 1051 can include first and second segments 1055,1060. The first segment 1055 is omni-directional and includes L-STF,L-LTF, L-SIG, VHT-SIG1, and VHT-SIG2. VHT-SIG1 and VHT-SIG2 containinformation for clients listening on a WLAN. VHT-SIG1 and VHT-SIG2 caninclude a subfield to indicate the presence of a VHT signaling fields ina steered portion of the SDMA frame 1051. The second segment 1060includes steered PHY frames, e.g., a first PHY frame 1065 steered to afirst client associated with a first subspace and a second PHY frame1070 steered to a second client associated with a second subspace. ThePHY frames 1065, 1070 include VHT-STF, VHT-LTF, VHT-SIG1, VHT-SIG2, andVHT-Data. PHY frames 1065, 1070 fields such as VHT-SIG1 and VHT-SIG2 cansignal how many additional VHT-LTFs remain in a PHY frame 1065, 1070 fora specific receiver.

FIG. 11 shows another example of a space division multiple access basedframe. A SDMA frame 1101 can include first and second PHY frames 1105,1110 that are partitioned into first and second segments 1120, 1125. Thefirst and second PHY frames 1105, 1110 are steered towards differentclients. In the first segment 1120, the PHY frames 1105, 1110 haveidentical data, e.g., identical L-STF, L-LTF, and L-SIG. However, in thefirst segment 1120, the AP performs steering for each of the clients byusing one column of a corresponding steering matrix. In the secondsegment 1125, the PHY frames 1105, 1110 include HT-SIG, HT-STF, multipleHT-LFTs, and HT-Data. The number of included HT-LTFs can vary perclient. The length of HT-Data can vary per client. In the second segment1125, the AP performs steering for each of the clients by using all ofthe columns of a corresponding steering matrix.

The PHY frames 1105, 1110 can be operated based on one or more FFTbandwidth frequencies, e.g., 20 MHz, 40 MHz, or 80 MHz. In someimplementations, different PHY frames 1105, 1110 can use differentbandwidth frequencies in the same SDMA frame 1101. In someimplementations, if one subspace is operated at 40 MHz in the secondsegment 1125, then a subspace associated with the first segment 1120 isoperated at 20 MHz with its information content duplicated at upper andlower 20 MHz halves, where the upper tones have a 90 degree phase shiftrelative to the lower tones.

FIG. 12 shows another example of a space division multiple access basedframe. A wireless communication device can generate a SDMA frame 1201based on an IEEE 802.11n Greenfield Mode. A SDMA frame 1201 can includefirst and second PHY frames 1205, 1210. In this example, the PHY frames1205, 1210 are steered for respective clients using all of the columnsof the corresponding steering matrices.

The PHY frames 1205, 1210 can include HT-STF, HT-LTF, HT-SIG, andHT-Data fields. The PHY frames 1205, 1210 can include signaling toindicate that one or more additional HT-LTFs are included. In someimplementations, a wireless communication device can set a bit in aHT-SIG field to indicate a presence of a SDMA frame to a client. Awireless communication device can include padding, if required, togenerate equal duration PHY frames 1205, 1210. For example, a device caninclude zero-byte padding after the end of a HT-Data field to generate aPHY frame that is equal in length to another PHY frame, of a SDMA frame,that includes a longer HT-Data field.

The sounding frame format and the SDMA frame format can vary. Thesounding and feedback techniques presented herein can be combined with avariety of frame formats, e.g., preamble formats, applied for a wirelesscommunication system, e.g., such as one based on IEEE 802.11ac.

In some implementations, SDMA devices are operated to be compatible withlegacy devices such as legacy IEEE 802.11n based devices or legacy IEEE802.11a based devices. In some implementations, a SDMA frame format iscompatible with such legacy devices. For example, a legacy device candetect and/or disregard a SDMA frame transmitted in the legacy device'soperating frequency band. In some implementations, SDMA devices cancreate a protected time period (TxOP) during which SDMA frametransmissions are conducted. Such SDMA devices can use a MAC mechanismto reserve time for transmission of SDMA frames.

Acknowledgement (ACK) packets can be transmitted by client SDMA devicesduring a TxOP. In some cases, a negative ACK (NAK) can be transmitted toindicate a failure. If an ACK is required for a SDMA frame, thereceiving device can send an ACK after a SIFS, which starts after theend of a SDMA frame. In some implementations, a wireless communicationdevice aggregates acknowledgement information and transmits a block ACKbased on a pre-determined number of SDMA frames.

FIG. 13 shows an example of a timing diagram that includes windows forcarrier sense based communications and a window for space division basedcommunications. An AP 1305 can transmit or receive data to/from legacyclients 1310 a, 1310 b during legacy windows 1350, 1352 for CSMA-basedcommunications. During a window 1354 for SDMA based communications, theAP 1305 sends steered data to SDMA enabled clients 1315 a, 1315 b, 1315c and then receives acknowledgements from the SDMA enabled clients 1315a, 1315 b, 1315 c. During the SDMA window 1354, legacy clients 1310 a,1310 b can be prohibited from transmitting data. Time sufficient for theSDMA window 1354 can be arranged with the legacy client stations 1310 a,1310 b using a MAC mechanism.

FIG. 14 shows an example of a timing diagram including a downlink SDMAframe and uplink acknowledgments. An AP can transmit data to differentclients in a SDMA frame 1405. ACKs 1410 a, 1410 b, 1410 c can betransmitted after the SDMA frame 1405 based on a fixed schedule, e.g.,using a time slot based approach. Allocation of the time slots can beperformed by the AP. In some implementations, a SDMA frame 1405 caninclude a MAC IE in each of the signals transmitted in the correspondingsubspaces to indicate the ordering of when each client can send an ACKor NAK. However, the allocation of time for ACKs can be distributedusing other approaches and/or at other times. A SIFS can separate theSDMA frame 1405 and the ACKs 1410 a, 1410 b, 1410 c.

FIG. 15 shows an example of a communication process based on channelstate information. A communication process can use channel stateinformation to determine steering matrices. The process can use explicitsounding to receive feedback information from two or more devices. Twoclient devices are described in this example, however, the techniquesillustrated by this example are readily extendable to more than twodevices.

At 1505, a communication process receives first channel stateinformation from a first device. At 1510, the communication processreceives second channel state information from a second device. At 1515,the communication process determines a first steering matrix based atleast on the second channel state information. At 1520, thecommunication process determines a second steering matrix based at leaston the first channel state information. In some implementations, acommunication process can use implicit sounding. For example, atransmitter can determine channel state information based on receivedsounding packets from multiple devices.

FIG. 16 shows an example of a communication process based on beamforming feedback. A communication process can use beam forming feedbackinformation, such as beam forming feedback matrices, to determinesteering matrices. The process can use explicit sounding to receivefeedback information from two or more devices. Two client devices aredescribed in this example, however, the techniques illustrated by thisexample are readily extendable to more than two devices.

At 1605, a communication process receives beam forming information thatincludes a first feedback matrix from a first device. At 1610, thecommunication process receives beam forming information that includes asecond feedback matrix from a second device. At 1615, the communicationprocess determines a first steering matrix based at least on the firstfeedback matrix. At 1620, the communication process determines a secondsteering matrix based at least on the second feedback matrix.

FIG. 17 shows an example of a communication process based oninterference feedback. A communication process can use interferencefeedback information, such as interference feedback matrices, todetermine steering matrices. The process can use explicit sounding toreceive feedback information from two or more devices. Two clientdevices are described in this example, however, the techniquesillustrated by this example are readily extendable to more than twodevices.

At 1705, a communication process receives interference rejectioninformation that includes a first matrix from a first device. In someimplementations, the first matrix is based on a null space of a wirelesschannel matrix associated with the first device. At 1710, thecommunication process receives interference rejection information thatincludes a second matrix from a second device. In some implementations,the second matrix is based on a null space of a wireless channel matrixassociated with the second device. At 1715, the communication processdetermines a first steering matrix for the first device based at leaston the second matrix. At 1720, the communication process determines asecond steering matrix for the second device based at least on the firstmatrix.

The techniques and packet formats described herein can be compatiblewith various packet formats defined for various corresponding wirelesssystems such as one based on IEEE 802.11ac. For example, variouswireless systems can be adapted with the techniques and systemsdescribed herein to include signaling related to sounding via multipleclients and signaling of a SDMA frame.

A few embodiments have been described in detail above, and variousmodifications are possible. The disclosed subject matter, including thefunctional operations described in this specification, can beimplemented in electronic circuitry, computer hardware, firmware,software, or in combinations of them, such as the structural meansdisclosed in this specification and structural equivalents thereof,including potentially a program operable to cause one or more dataprocessing apparatus to perform the operations described (such as aprogram encoded in a computer-readable medium, which can be a memorydevice, a storage device, a machine-readable storage substrate, or otherphysical, machine-readable medium, or a combination of one or more ofthem).

The term “data processing apparatus” encompasses all apparatus, devices,and machines for processing data, including by way of example aprogrammable processor, a computer, or multiple processors or computers.The apparatus can include, in addition to hardware, code that creates anexecution environment for the computer program in question, e.g., codethat constitutes processor firmware, a protocol stack, a databasemanagement system, an operating system, or a combination of one or moreof them.

A program (also known as a computer program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, or declarative orprocedural languages, and it can be deployed in any form, including as astand alone program or as a module, component, subroutine, or other unitsuitable for use in a computing environment. A program does notnecessarily correspond to a file in a file system. A program can bestored in a portion of a file that holds other programs or data (e.g.,one or more scripts stored in a markup language document), in a singlefile dedicated to the program in question, or in multiple coordinatedfiles (e.g., files that store one or more modules, sub programs, orportions of code). A program can be deployed to be executed on onecomputer or on multiple computers that are located at one site ordistributed across multiple sites and interconnected by a communicationnetwork.

While this specification contains many specifics, these should not beconstrued as limitations on the scope of what may be claimed, but ratheras descriptions of features that may be specific to particularembodiments. Certain features that are described in this specificationin the context of separate embodiments can also be implemented incombination in a single embodiment. Conversely, various features thatare described in the context of a single embodiment can also beimplemented in multiple embodiments separately or in any suitablesubcombination. Moreover, although features may be described above asacting in certain combinations and even initially claimed as such, oneor more features from a claimed combination can in some cases be excisedfrom the combination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the embodiments described above should not be understoodas requiring such separation in all embodiments.

Other embodiments fall within the scope of the following claims.

What is claimed is:
 1. A method comprising: transmitting a soundingpacket to wireless communication devices; receiving, in response to thesounding packet, feedback packets from the wireless communicationdevices, wherein the feedback packets are indicative of beamformingmatrices, the beamforming matrices being derived from received versionsof the sounding packet; determining steering matrices based on thebeamforming matrices; generating spatially steered data packets for thewireless communication devices based respectively on the steeringmatrices and data streams intended respectively for the wirelesscommunication devices; and transmitting, within a frame, the spatiallysteered data packets to the wireless communications devices, wherein thespatially steered data packets concurrently provide the data streamsrespectively within the frame to the wireless communication devices viadifferent spatial wireless channels.
 2. The method of claim 1, whereinthe feedback packets respectively comprise compressed versions of thebeamforming matrices.
 3. The method of claim 1, wherein determining thesteering matrices based on the beamforming matrices comprises using aspatial mapping matrix, and wherein the sounding packet is based on thespatial mapping matrix.
 4. The method of claim 1, comprising:transmitting a null data packet (NDP) announcement packet to indicatethat two or more NDP based sound packets will be transmitted, whereintransmitting the sounding packet comprises: transmitting a first NDPthat is configured to sound a first group of antennas; and transmittinga second NDP that is configured to sound a second group of antennas. 5.The method of claim 1, wherein the sounding packet comprises trainingfields, and wherein a quantity of the training fields is included in asignal field of the sounding packet.
 6. The method of claim 1, whereinthe sounding packet comprises information for training eight antennas.7. An apparatus comprising: transceiver electronics to communicate withwireless communication devices; and processor electronics coupled withthe transceiver electronics and configured to control a transmission ofa sounding packet to the wireless communication devices, receive, inresponse to the sounding packet, feedback packets from the wirelesscommunication devices, wherein the feedback packets are indicative ofbeamforming matrices, the beamforming matrices being derived fromreceived versions of the sounding packet, determine steering matricesbased on the beamforming matrices, generate spatially steered datapackets for the wireless communication devices based respectively on thesteering matrices and data streams intended respectively for thewireless communication devices, and control a transmission, within aframe, of the spatially steered data packets to the wirelesscommunications devices, wherein the spatially steered data packetsconcurrently provide the data streams respectively within the frame tothe wireless communication devices via different spatial wirelesschannels.
 8. The apparatus of claim 7, wherein the feedback packetsrespectively comprise compressed versions of the beamforming matrices.9. The apparatus of claim 7, wherein the steering matrices aredetermined based on a spatial mapping matrix, and wherein the soundingpacket is based on the spatial mapping matrix.
 10. The apparatus ofclaim 7, wherein the sounding packet is a first null data packet (NDP)that is configured to sound a first group of antennas, and wherein theprocessor electronics are configured to transmit a NDP announcementpacket to indicate that two or more NDP based sound packets will betransmitted, and transmit a second NDP to sound a second group ofantennas.
 11. The apparatus of claim 7, wherein the sounding packetcomprises training fields, and wherein a quantity of the training fieldsis included in a signal field of the sounding packet.
 12. The apparatusof claim 7, wherein the sounding packet comprises information fortraining eight antennas.
 13. A system comprising: antennas; and anaccess point communicatively coupled with the antennas and configured totransmit, via the antennas, a sounding packet to wireless communicationdevices, receive, in response to the sounding packet, feedback packetsfrom the wireless communication devices, wherein the feedback packetsare indicative of beamforming matrices, the beamforming matrices beingderived from received versions of the sounding packet, determinesteering matrices based on the beamforming matrices, generate spatiallysteered data packets for the wireless communication devices basedrespectively on the steering matrices and data streams intendedrespectively for the wireless communication devices, and transmit,within a frame, the spatially steered data packets to the wirelesscommunications devices via the antennas, wherein the spatially steereddata packets concurrently provide the data streams respectively withinthe frame to the wireless communication devices via different spatialwireless channels.
 14. The system of claim 13, wherein the feedbackpackets respectively comprise compressed versions of the beamformingmatrices.
 15. The system of claim 13, wherein the steering matrices aredetermined based on a spatial mapping matrix, and wherein the soundingpacket is based on the spatial mapping matrix.
 16. The system of claim13, wherein the sounding packet is a first null data packet (NDP) forsounding a first group of the antennas, and wherein the access point isconfigured to transmit a NDP announcement packet to indicate that two ormore NDP based sound packets will be transmitted, and transmit a secondNDP for sounding a second group of the antennas.
 17. The system of claim13, wherein the sounding packet comprises training fields, and wherein aquantity of the training fields is included in a signal field of thesounding packet.
 18. The system of claim 13, wherein the sounding packetcomprises information for training eight antennas.